#include <func.h>

int simple_system(const char* command) {
	pid_t childPid = fork();

	switch(childPid) {
	case -1:
		error(1, errno, "fork");
	case 0:		// 子进程
		execlp("sh", "sh", "-c", command, NULL);
		// execlp执行失败
		_exit(127);  // 不会刷新用户态缓冲区
	default:
		// 父进程
		int status;
		if (waitpid(childPid, &status, 0) == -1) {
			return -1;
		} else {
			return status;
		}
	}
}

int main(int argc, char* argv[])
{
	printf("pid = %d, ppid = %d\n", getpid(), getppid());
	// system("top");
	simple_system("top");
    return 0;
}

